所謂 7–1 pattern 就是 7 個資料夾 + 1 個入口檔案。
目的是把 樣式依用途切開,避免一坨大檔案。
部分檔案 (Partial files):在檔名前加底線 _,避免被單獨編譯成 CSS。
例如:_variables.scss, _button.scss。
在 main.scss 統一管理匯入,不要每個人都在 JS 裡隨便 import:
SCSS
// main.scss
@use 'abstracts/variables';
@use 'abstracts/mixins';
@use 'base/reset';
@use 'base/typography';
@use 'layout/grid';
@use 'components/button';
@use 'components/card';
@use 'pages/home';
1.元件化 (Component-based)
一個 SCSS 檔只處理一個元件。
例:_button.scss 只管 button,不要順手寫 navbar。
2.可重複使用 (Reusable)
抽離常用的變數、顏色、排版,放進 abstracts/。
SCSS
// abstracts/_variables.scss
$primary-color: #3498db;
$spacing-sm: 8px;
$spacing-md: 16px;
3.避免深層巢狀
SCSS 巢狀最多建議 3 層,否則日後很難維護。
SCSS
// ❌ 壞例子
.navbar {
ul {
li {
a {
span {
color: red;
}
}
}
}
}
-規範 BEM 命名法 → 讓 class 名稱可讀且一致:
.card { }
.card__title { }
.card--highlight { }
**-Lint 工具:**安裝 stylelint
搭配 stylelint-scss,自動檢查縮排/命名/巢狀。
用 7–1 架構分資料夾:abstracts, base, components, layout, pages, themes, vendors, main.scss。
一檔一責任:每個 SCSS 檔只管一件事。
匯入統一走 main.scss,不要亂 import。
命名統一(建議 BEM),配合 Lint 工具確保一致性。